Cơ sở toán học
Lôgic toán (Mathematical logic)Lôgic Bool và các phương pháp tương ứng dùng để mô hình hóa các truy vấn lôgic; Sự sử dụng các phương pháp chứng minh hình thức (formal proof) cùng những hạn chế của chúng.
Lý thuyết số (Number theory)Lý thuyết về chứng minh và các khảo nghiệm trong việc lùng tìm những chứng minh trong giới hạn các số nguyên. Lý thuyết số được sử dụng trong
mật mã học và đồng thời được dùng như một phương thức kiểm thử trong
trí tuệ nhân tạo.
Lý thuyết đồ thị (Graph theory)Cơ sở cho cấu trúc dữ liệu và các thuật toán tìm kiếm.
Lý thuyết kiểu (Type Theory)Phân tích quy chính các kiểu dữ liệu, cùng sự sử dụng các kiểu dữ liệu nhằm giảng giải tính chất của các chương trình phần mềm - đặc biệt là tính an toàn của chương trình.
Lý thuyết phạm trù (Category theory)Lý thuyết phân loại cho phép tổng quát các phương pháp toán học và các phương thức tính toán thành một ước thể.
Hình học tính toán (Computational geometry)Chuyên tâm vào việc nghiên cứu các
thuật toán nhằm giải quyết những vẫn đề được đề bạt trên phương diện
hình học.
Giải tích số (Numerical analysis)Nền tảng của các thuật toán trong
toán học rời rạc, đồng thời cũng dùng để nghiên cứu những giới hạn trong các tính toán dùng số thập phân (1.0E-3), bao gồm những sai số xảy ra trong
phương pháp làm tròn số (round-off errors).
Lý thuyết tính toán
Lý thuyết Ôtômat (Automata theory)Các cấu trúc lôgic khác nhau có thể sử dụng để giải quyết các bài toán.
Lý thuyết khả năng tính toán (Computability theory)Những gì có thể tính toán được bằng các mô hình máy tính hiện tại. Các chứng minh của
Alan Turing và những người khác bày tỏ cho chúng ta biết được khả năng những gì có thể tính toán được và những gì không thể.
Lý thuyết độ phức tạp tính toán (Computational complexity theory)Các giới hạn căn bản (cụ thể là thời gian và dung lượng bộ nhớ đòi hỏi) đối với các hạng loại bài toán khác nhau.Lý thuyết
tính toán lượng tử (Quantum computing)Phương thức biểu hiện và chuyển hóa dữ liệu sử dụng những đặc tính của vật chất cùng cơ chế lượng tử.
Cấu trúc dữ liệu và giải thuật
Phân tích thuật toán (Analysis of algorithms)Độ phức tạp về thời gian và không gian của các thuật toán.
Thuật toán (Algorithms)Các quá trình lôgic trên nguyên tắc được sử dụng cho việc tính toán và tính hiệu quả của các quá trình này.
Cấu trúc dữ liệu (Data structures)Tổ chức của dữ liệu và các quy tắc thao tác dữ liệu.
Ngôn ngữ lập trình và trình biên dịch
Trình biên dịch (Compilers)Dịch toàn bộ mã nguồn của ngôn ngữ lập trình thành chương trình đích rồi sau đó mới thực hiện, thường là từ các
ngôn ngữ lập trình bậc cao sang các
ngôn ngữ lập trình bậc thấp, hay dịch sang mã máy. Các ngôn ngữ sử dụng trình biên dịch như
Pascal,
C,...
Trình thông dịch (Interpreter)Là cách dịch từng lệnh một, dịch tới đâu thực hiện tới đó. Chẳng hạn ngôn ngữ
LISP sử dụng trình thông dịch.
Ngôn ngữ lập trình (Programming languages)Ngôn ngữ lập trình là một ngôn ngữ được thiết kế và tạo ra để viết chương trình cho máy tính. Những ngôn ngữ này còn đồng thời biểu hiện những đặc tính không giống nhau giữa các ngôn ngữ khác nhau (ví dụ, chúng thích hợp cho việc giải các bài toán thuộc dạng nào).
Hệ thống phân tán, song song, tương tranh
Tương tranh (Concurrency)Lý thuyết và thực tiễn của tính toán đồng thời; an toàn dữ liệu trong môi trường đa nhiệm hay đa luồng bất kỳ.
Tính toán phân tán (Distributed computing)Tính toán sử dụng nhiều thiết bị tính toán trên một mạng để thực hiện một nhiệm vụ hoặc một mục tiêu chung.
Tính toán song song (Parallel computing)Tính toán sử dụng nhiều luồng thực thi đồng thời.
Kỹ nghệ phần mềm
Thiết kế thuật toán (Algorithm design)Lấy ý tưởng từ
lý thuyết thuật toán để năng động kiến tạo các giải pháp đối với những nhiệm vụ trên thực tế
Lập trình máy tính (Computer programming)Dùng ngôn ngữ lập trình để thực thi các thuật toán
Các phương pháp hình thức (Formal methods)Sử dụng toán học để miêu tả và lập luận đối với các thiết kế phần mềm.
Kỹ nghệ đảo ngược (Reverse engineering)Ứng dụng phương pháp khoa học vào việc phân tích và lý giải một phần mềm tùy thích vốn có.
Kỹ nghệ phần mềm (Software development)Những nguyên lý và thực hành trong việc thiết kế, phát triển và kiểm thử các chương trình, cùng những phương pháp thực hành kỹ nghệ đúng đắn.
Kiến trúc máy tính
Kiến trúc máy tính (Computer architecture)Việc thiết kế, tổ chức, tối ưu hóa và kiểm định một hệ thống máy tính, chủ yếu về
CPU và tiểu hệ
bộ nhớ máy tính (và hệ thống
bus nối giữa chúng).
Tổ chức máy tính (Computer organization)Nghiên cứu các kiến trúc máy tính trên cơ sở các mô tả
mạch điện,
bộ xử lý trung tâm,
bọ xử lý tín hiệu số của máy tính.
Hệ điều hànhNhững hệ thống dùng để quản lý các chương trình máy tính và cung cấp nền tảng cơ bản cho một hệ thống khả dụng.
Truyền thông - Viễn thông
Xử lý âm thanh trong máy tính (Computer audio)Những thuật toán và cấu trúc dữ liệu dùng để kiến tạo, thao tác, lưu trữ, và truyền thanh các bản ghi
âm thanh kỹ thuật số (digital audio). Ngành này còn đóng vai trò quan trọng đối với các ứng dụng
nhận dạng tiếng nói (speech recognition) nữa.
Mạng máy tính (Computer networking)Các
thuật toán và
giao thức dành cho việc truyền thông dữ liệu một cách đáng tin cậy qua các môi trường truyền thông chuyên dụng hoặc chia sẻ khác nhau. Thường khi bao gồm cả việc
sửa lỗi(error correction) trong truyền thông.
Mật mã học (Cryptography)Áp dụng kết quả của các
lý thuyết độ phức tạp tính toán,
lý thuyết xác suất, và
lý thuyết số để kiến tạo và phá
mật mã.
Cơ sở dữ liệu
Khai phá dữ liệu (Data mining)Nghiên cứu các phương pháp sàng lọc, rút ra những thông tin cần thiết từ các nguồn dữ liệu khác nhau.
Cơ sở dữ liệu quan hệ (Relational databases)Nghiên cứu các thuật toán tìm kiếm và xử lý thông tin trong các tài liệu và cơ sở dữ liệu; có quan hệ gần gũi với ngành
thu thập thông tin (information retrieval).
Trí tuệ nhân tạo
Trí tuệ nhân tạo (Artificial intelligence)Sự nghiên cứu và thực thi các hệ thống có khả năng tự thể hiện trí thông minh hoặc tự biểu đạt những hành vi của chính bản thân mình.
Sự sống nhân tạo (Artificial life)Sự nghiên cứu các
sinh thể kỹ thuật số (digital organisms) để hiểu biết thêm về các hệ thống sinh học (biological systems) và quá trình tiến hóa.
Lập luận tự động (Automated reasoning)Nghiên cứu các động cơ giải quyết bài toán, chẳng hạn như được sử dụng trong
Prolog, các động cơ này tạo ra các bước dẫn đến một kết quả nếu cho trước một truy vấn về một sự kiện và một cơ sở dữ liệu gồm các luật (rule database).
Thị giác máy tính (Computer vision)Các thuật toán nhận dạng các đối tượng ba chiều từ một hoặc nhiều hình ảnh hai chiều.
Học máy (Machine learning)Nghiên cứu việc tự động tạo nhóm các luật và tiên đề dựa trên những dữ liệu cho trước.
Xử lý ngôn ngữ tự nhiên/
Ngôn ngữ học Tính toán (Natural language processing/Computational linguistics)Tự động hóa việc tiếp thu và kiến tạo ngôn ngữ loài người.
Rôbô học (Robotics)Các thuật toán điều khiển hành vi của rôbô.
Tính toán mềm
Một thuật ngữ tổng hợp dành cho các kỹ thuật được sử dụng để giải các bài toán cụ thể, xem bài chính.
Đồ họa máy tính
Đồ họa máy tính (Computer graphics)Những thuật toán sử dụng trong cả hai trường hợp, kiến tạo hình ảnh một cách nhân tạo mà người thường có thể xem được bằng mắt, đồng thời kết hợp và thay đổi các dữ liệu về không gian và thị giác thu được từ môi trường sống bên ngoài.
Xử lý ảnh (Image processing)Dùng tính toán để lấy thông tin từ một hình ảnh.
Tương tác người-máy
Tương tác người-máy (Human computer interaction)Nghiên cứu phương pháp làm cho máy tính và sự tính toán của chúng trở nên hữu dụng, có thể tiếp cận và sử dụng bởi bất cứ ai trên thế giới là
người dùng, bao gồm cả việc nghiên cứu và thiết kế
giao diện người dùng.
Tính toán khoa học
Tin sinh học (Bioinformatics)Sử dụng khoa học máy tính để bảo trì, phân tích, lưu trữ
dữ liệu sinh học (biological data) và để hỗ trợ việc giải các bài toán sinh học chẳng hạn như
quá trình gấp cuộn của chất đạm (protein folding),
dự đoán chức năng của cấu trúc chất đạm (function prediction), và
phát sinh chủng loại (phylogeny).
Khoa học nhận thức (Cognitive Science)Sử dụng kỹ thuật máy tính để kiến tạo các mô hình của trí tuệ con người.
Hóa học tính toán (Computational chemistry)Mô hình hóa tổ chức của chất hóa học trên lý thuyết bằng tính toán, hòng xác định cấu trúc và đặc tính của chúng.
Thần kinh học tính toán (Computational neuroscience)Mô hình hóa bộ não con người bằng tính toán.
Vật lý tính toán (Computational physics)Sử dụng số học để mô phỏng những hệ thống lớn bất khả phân tích (large non-analytic systems)
Phân tích số (Numerical analysis) hoặc (Numerical algorithms)Dùng các thuật toán để giải các đề toán của toán học, chẳng hạn như thuật toán tìm ẩn số của hàm (Root-finding algorithm),
integration, the
solution of ordinary differential equations and the approximation/evaluation of
special functions.
Toán học ký hiệuManipulation and solution of expressions in symbolic form, also known as
Đại số máy tính.